package com.Studen.controller;

import com.Studen.bean.User;
import com.Studen.servlet.LoginServlet;
import com.Studen.servlet.LoginServletMpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

@WebServlet("/Login")
public class LoginController extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置乱码
        request.setCharacterEncoding("UTF-8");
        String name = request.getParameter("name");
        String pwd = request.getParameter("pwd");

        //将用户名和密码封装再user对象里
        User user = new User();
        user.setU_name(name);
        user.setU_pwd(pwd);
        LoginServlet l = new LoginServletMpl();
        List<User> u = l.login(user);
        List<User> users = l.show(user);
         /*  如果用户名和密码都正确 重定向到主页面 否则跳转到登录页面重新输入
                   1.重定向地址栏会改变
                   2.重定向可以跳转到当前web应用，甚至是外部域名的网站。
                   3.不能在重定向的过程中，将数据保存到request域对象中。

                转发：
                    1.地址栏不会改变
                    2.转发只能转发到当前Web应用内的资源
                    3.在转发过程中，可以将数据保存到request域对象当中去
                    4.转发只有一次请求
                    5.转发是服务器端行为
                    (可以将后台的数据转发到前台：比如登录功能时账户和密码有误
                                            注册功能 是否注册成功等)
         * */
        if (!u.isEmpty()) {
            request.setAttribute("u", u);
            request.setAttribute("user", users);
            request.getRequestDispatcher("main.jsp").forward(request, response);

        } else {
            request.setAttribute("users",user);
            request.setAttribute("error", "账户或者密码有误！！！");
            request.getRequestDispatcher("login.jsp").forward(request, response);
        }
    }
}
